library(mlr3)
14 Uczenie maszynowe z pakietem mlr3
Klaudia Lenart
14.1 📘 Pakiet mlr3
Pakiet mlr3 pozwala na wykorzystanie różnorodnych algorytmów uczenia maszynowego w ujednolicony sposób.
14.2 📘 Klasyfikacja
Algorytmy te pozwalają przewidzieć klasę do jakiej należy dana obserwacja.
Na przykład w przypadku zbioru danych iris kolumna Species określa przynależność danego kwiatu do jednego z trzech gatunków.
#Wykorzystywany zbiór danych:
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
14.2.1 ❕ Zadanie
W celu wytrenowania algorytmu dla danego zbioru danych należy stworzyć zadanie.
Umożliwia to funkcja as_task_classif której pierwszy argument to nasz zbiór danych a drugi to nazwa kolumny w której znajduje się przewidywana klasa.
<- as_task_classif(iris, target="Species")
zadanie
zadanie
<TaskClassif:iris> (150 x 5)
* Target: Species
* Properties: multiclass
* Features (4):
- dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
Należy pamiętać, że kolumna podana jako target musi zawierać zmienną typu factor.
W przypadku zbioru danych iris kolumna Species jest typu factor, jednak jeżeli to zmienimy próba utworzenia zadania zwróci error.
14.2.2 ❕ Algorytm
Niezależnie od utworzonego powyżej zadania należy stworzyć obiekt, który zdefiniuje typ algorytmu jaki zostanie wykorzystany.
<- lrn("classif.rpart") drzewo_decyzyjne
Dostępne algorytmy można zobaczyć przywołując następujący obiekt:
mlr_learners
<DictionaryLearner> with 6 stored values
Keys: classif.debug, classif.featureless, classif.rpart, regr.debug,
regr.featureless, regr.rpart
Niewiele algorytmów jest dostępne w ramach podstawowego mlr3.
By uzyskać dostęp do dodatkowych algorytmów należy wczytać następującą bibliotekę.
library(mlr3learners)
Teraz lista dostępnych algorytmów zawiera znacznie więcej elementów.
mlr_learners
<DictionaryLearner> with 27 stored values
Keys: classif.cv_glmnet, classif.debug, classif.featureless,
classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
classif.ranger, classif.rpart, classif.svm, classif.xgboost,
regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
regr.xgboost
Dzięki temu wykorzystać będzie można takie algorytmy jak na przykład k najbliższych sąsiadów.
<- lrn("classif.kknn") knn
Możliwe że wybrany algorytm wymagać będzie instalacji dodatkowego pakietu.
Powyższy algorytm wymaga na przykład pakietu kknn.
Nie trzeba jednak wczytywać pakietu za pomocą funkcji library() - wystarczy że jest on zainstalowany.
Podstawowe zastosowanie algorytmu.
Tak przygotowany algorytm można teraz zastosować dla określonego zadania.
Najpierw konieczne jest wytrenowanie modelu - etap ten można porównać do oszacowania parametrów modelu ekonometrycznego.
Należy zwrócić uwagę na to, że przywołanie $train() zmodyfikuje już istniejący obiekt drzewo_decyzyjne.
ynik nie jest zapisany jako osobny model a automatycznie nadpisuje utworzony wcześniej obiekt dla którego zdefiniowano tylko algorytm.
####przed zastosowaniem $train() model jest pusty
$model drzewo_decyzyjne
NULL
Zastosowanie algorytmu drzewa decyzyjnego dla zadania klasyfikacji kwiatów powoduje że model nie jest już pusty.
$train(zadanie)
drzewo_decyzyjne
$model drzewo_decyzyjne
n= 150
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)
2) Petal.Length< 2.45 50 0 setosa (1.00000000 0.00000000 0.00000000) *
3) Petal.Length>=2.45 100 50 versicolor (0.00000000 0.50000000 0.50000000)
6) Petal.Width< 1.75 54 5 versicolor (0.00000000 0.90740741 0.09259259) *
7) Petal.Width>=1.75 46 1 virginica (0.00000000 0.02173913 0.97826087) *
W celu uzyskania wartości przewidywanych przez model należy zastosować $predict().
W przeciwieństwie do $train() wyniki $predict() należy zapisać jako osobny obiekt.
<- drzewo_decyzyjne$predict(zadanie) gatunki_przewidywane
Warto zauważyć, że wynik tej operacji zwraca tabelę w której znajdują się zarówno wartości rzeczywiste (truth) jak i przewidywane (response).
gatunki_przewidywane
<PredictionClassif> for 150 observations:
row_ids truth response
1 setosa setosa
2 setosa setosa
3 setosa setosa
---
148 virginica virginica
149 virginica virginica
150 virginica virginica
14.2.3 ❕ Podział na zbiór uczący i testowy
W celu poprawnej oceny jakości dopasowania modelu należy losowo wydzielić zbiór uczący i testowy.
Zbiór testowy symulować ma trafność przewidywania modelu dla nowych obserwacji.
Posłużyć do tego może funkcja partition.
<- partition(zadanie) uczący_testowy
Funkcja ta zwraca dwie listy id elementów przypisanych do zbioru uczącego (train) i testowego (test).
head(uczący_testowy)
$train
[1] 1 2 3 4 5 7 8 10 12 13 14 15 17 18 19 20 21 24
[19] 27 31 32 33 34 35 37 38 39 40 42 43 45 47 49 50 51 55
[37] 56 57 59 61 62 63 64 65 66 67 68 70 72 73 74 75 76 77
[55] 78 81 82 84 85 86 87 89 90 93 94 96 97 100 101 102 103 105
[73] 106 107 108 110 111 113 114 119 120 121 122 124 126 127 128 130 131 132
[91] 133 134 136 137 138 139 141 142 143 144 145 147
$test
[1] 6 9 11 16 22 23 25 26 28 29 30 36 41 44 46 48 52 53 54
[20] 58 60 69 71 79 80 83 88 91 92 95 98 99 104 109 112 115 116 117
[39] 118 123 125 129 135 140 146 148 149 150
Domyślnie zbiór uczący stanowić będzie 67% obserwacji z oryginalnego zbioru danych, a zbiór testowy 33%.
By to zmienić można użyć argumentu ratio określającego procent obserwacji który zostanie wylosowany do zbioru uczącego.
Poniższa komenda podzieli obserwacje tak by 50% znalazło się w zbiorze uczącym.
partition(zadanie,ratio = 0.5)
$train
[1] 1 4 5 7 8 14 15 17 21 22 23 24 25 28 29 30 35 36 37
[20] 38 39 40 41 44 48 51 53 55 57 60 62 64 65 71 72 73 74 75
[39] 80 82 84 86 89 91 93 94 95 97 98 100 101 102 103 109 114 119 120
[58] 121 123 124 125 127 129 130 132 135 136 138 139 141 146 147 148 149 150
$test
[1] 2 3 6 9 10 11 12 13 16 18 19 20 26 27 31 32 33 34 42
[20] 43 45 46 47 49 50 52 54 56 58 59 61 63 66 67 68 69 70 76
[39] 77 78 79 81 83 85 87 88 90 92 96 99 104 105 106 107 108 110 111
[58] 112 113 115 116 117 118 122 126 128 131 133 134 137 140 142 143 144 145
By skorzystać z podziału wykonanego za pomocą funkcji partition należy wykorzystać argument row_ids.
Na etapie tworzenia modelu wykorzystany zostanie tylko zbiór uczący.
$train(zadanie,row_ids = uczący_testowy$train) knn
Przewidywanie gatunków dla zbioru testowego.
<- knn$predict(zadanie,row_ids = uczący_testowy$test)
gatunki_przewidywane_test
gatunki_przewidywane_test
<PredictionClassif> for 48 observations:
row_ids truth response
6 setosa setosa
9 setosa setosa
11 setosa setosa
---
148 virginica virginica
149 virginica virginica
150 virginica virginica
14.2.4 ❕ Parametry modelu
By sprawdzić jakie wartości parametrów zostały ustawione przez $train() wykorzystać można param_set.
$param_set knn
<ParamSet>
id class lower upper nlevels default value
1: k ParamInt 1 Inf Inf 7 7
2: distance ParamDbl 0 Inf Inf 2
3: kernel ParamFct NA NA 10 optimal
4: scale ParamLgl NA NA 2 TRUE
5: ykernel ParamUty NA NA Inf
6: store_model ParamLgl NA NA 2 FALSE
Możliwa jest samodzielna modyfikacja parametrów.
Odwołać się do nich można za pomocą nazwy z kolumny id.
Na przykład dla algorytmu najbliższych sąsiadów liczba sąsiadów branych pod uwagę może być zmodyfikowana przy użyciu argumentu k.
<- lrn("classif.kknn",k=5)
knn_k5
$train(zadanie,row_ids = uczący_testowy$train) knn_k5
Wywołując param_set można zaobserwować, że dla nowego modelu k jest równe nie 7 a 5.
$param_set knn_k5
<ParamSet>
id class lower upper nlevels default value
1: k ParamInt 1 Inf Inf 7 5
2: distance ParamDbl 0 Inf Inf 2
3: kernel ParamFct NA NA 10 optimal
4: scale ParamLgl NA NA 2 TRUE
5: ykernel ParamUty NA NA Inf
6: store_model ParamLgl NA NA 2 FALSE
14.2.5 ❕ Ocena modeli
Istnieje wiele miar pozwalających na ocenę i porównywanie modeli.
W ramach pakietu mlr3 dostępne są następujące miary .
mlr_measures
<DictionaryMeasure> with 62 stored values
Keys: aic, bic, classif.acc, classif.auc, classif.bacc, classif.bbrier,
classif.ce, classif.costs, classif.dor, classif.fbeta, classif.fdr,
classif.fn, classif.fnr, classif.fomr, classif.fp, classif.fpr,
classif.logloss, classif.mauc_au1p, classif.mauc_au1u,
classif.mauc_aunp, classif.mauc_aunu, classif.mbrier, classif.mcc,
classif.npv, classif.ppv, classif.prauc, classif.precision,
classif.recall, classif.sensitivity, classif.specificity, classif.tn,
classif.tnr, classif.tp, classif.tpr, debug, oob_error, regr.bias,
regr.ktau, regr.mae, regr.mape, regr.maxae, regr.medae, regr.medse,
regr.mse, regr.msle, regr.pbias, regr.rae, regr.rmse, regr.rmsle,
regr.rrse, regr.rse, regr.rsq, regr.sae, regr.smape, regr.srho,
regr.sse, selected_features, sim.jaccard, sim.phi, time_both,
time_predict, time_train
Bardziej rozbudowane informacje można uzyskać następująco.
as.data.table(msr())
key label
1: aic Akaika Information Criterion
2: bic Bayesian Information Criterion
3: classif.acc Classification Accuracy
4: classif.auc Area Under the ROC Curve
5: classif.bacc Balanced Accuracy
6: classif.bbrier Binary Brier Score
7: classif.ce Classification Error
8: classif.costs Cost-sensitive Classification
9: classif.dor Diagnostic Odds Ratio
10: classif.fbeta F-beta score
11: classif.fdr False Discovery Rate
12: classif.fn False Negatives
13: classif.fnr False Negative Rate
14: classif.fomr False Omission Rate
15: classif.fp False Positives
16: classif.fpr False Positive Rate
17: classif.logloss Log Loss
18: classif.mauc_au1p Weighted average 1 vs. 1 multiclass AUC
19: classif.mauc_au1u Average 1 vs. 1 multiclass AUC
20: classif.mauc_aunp Weighted average 1 vs. rest multiclass AUC
21: classif.mauc_aunu Average 1 vs. rest multiclass AUC
22: classif.mbrier Multiclass Brier Score
23: classif.mcc Matthews Correlation Coefficient
24: classif.npv Negative Predictive Value
25: classif.ppv Positive Predictive Value
26: classif.prauc Precision-Recall Curve
27: classif.precision Precision
28: classif.recall Recall
29: classif.sensitivity Sensitivity
30: classif.specificity Specificity
31: classif.tn True Negatives
32: classif.tnr True Negative Rate
33: classif.tp True Positives
34: classif.tpr True Positive Rate
35: debug Debug Classification Measure
36: oob_error Out-of-bag Error
37: regr.bias Bias
38: regr.ktau Kendall's tau
39: regr.mae Mean Absolute Error
40: regr.mape Mean Absolute Percent Error
41: regr.maxae Max Absolute Error
42: regr.medae Median Absolute Error
43: regr.medse Median Squared Error
44: regr.mse Mean Squared Error
45: regr.msle Mean Squared Log Error
46: regr.pbias Percent Bias
47: regr.rae Relative Absolute Error
48: regr.rmse Root Mean Squared Error
49: regr.rmsle Root Mean Squared Log Error
50: regr.rrse Root Relative Squared Error
51: regr.rse Relative Squared Error
52: regr.rsq R Squared
53: regr.sae Sum of Absolute Errors
54: regr.smape Symmetric Mean Absolute Percent Error
55: regr.srho Spearman's rho
56: regr.sse Sum of Squared Errors
57: selected_features Absolute or Relative Frequency of Selected Features
58: sim.jaccard Jaccard Similarity Index
59: sim.phi Phi Coefficient Similarity
60: time_both Elapsed Time
61: time_predict Elapsed Time
62: time_train Elapsed Time
key label
task_type packages predict_type task_properties
1: <NA> mlr3 response
2: <NA> mlr3 response
3: classif mlr3,mlr3measures response
4: classif mlr3,mlr3measures prob twoclass
5: classif mlr3,mlr3measures response
6: classif mlr3,mlr3measures prob twoclass
7: classif mlr3,mlr3measures response
8: classif mlr3 response
9: classif mlr3,mlr3measures response twoclass
10: classif mlr3,mlr3measures response twoclass
11: classif mlr3,mlr3measures response twoclass
12: classif mlr3,mlr3measures response twoclass
13: classif mlr3,mlr3measures response twoclass
14: classif mlr3,mlr3measures response twoclass
15: classif mlr3,mlr3measures response twoclass
16: classif mlr3,mlr3measures response twoclass
17: classif mlr3,mlr3measures prob
18: classif mlr3,mlr3measures prob
19: classif mlr3,mlr3measures prob
20: classif mlr3,mlr3measures prob
21: classif mlr3,mlr3measures prob
22: classif mlr3,mlr3measures prob
23: classif mlr3,mlr3measures response twoclass
24: classif mlr3,mlr3measures response twoclass
25: classif mlr3,mlr3measures response twoclass
26: classif mlr3,mlr3measures prob twoclass
27: classif mlr3,mlr3measures response twoclass
28: classif mlr3,mlr3measures response twoclass
29: classif mlr3,mlr3measures response twoclass
30: classif mlr3,mlr3measures response twoclass
31: classif mlr3,mlr3measures response twoclass
32: classif mlr3,mlr3measures response twoclass
33: classif mlr3,mlr3measures response twoclass
34: classif mlr3,mlr3measures response twoclass
35: <NA> mlr3 response
36: <NA> mlr3 response
37: regr mlr3,mlr3measures response
38: regr mlr3,mlr3measures response
39: regr mlr3,mlr3measures response
40: regr mlr3,mlr3measures response
41: regr mlr3,mlr3measures response
42: regr mlr3,mlr3measures response
43: regr mlr3,mlr3measures response
44: regr mlr3,mlr3measures response
45: regr mlr3,mlr3measures response
46: regr mlr3,mlr3measures response
47: regr mlr3,mlr3measures response
48: regr mlr3,mlr3measures response
49: regr mlr3,mlr3measures response
50: regr mlr3,mlr3measures response
51: regr mlr3,mlr3measures response
52: regr mlr3,mlr3measures response
53: regr mlr3,mlr3measures response
54: regr mlr3,mlr3measures response
55: regr mlr3,mlr3measures response
56: regr mlr3,mlr3measures response
57: <NA> mlr3 response
58: <NA> mlr3,mlr3measures response
59: <NA> mlr3,mlr3measures response
60: <NA> mlr3 <NA>
61: <NA> mlr3 <NA>
62: <NA> mlr3 <NA>
task_type packages predict_type task_properties
Podobnie jak w przypadku wybrania używanego algorytmu należy utworzyć obiekt określający, która miara zostanie wykorzystana.
Na przykład w celu obliczenia trafności (ang. accuracy) obiekt należy zdefiniować następująco.
<- msr("classif.acc") trafność
By obliczyć trafność danego modelu na danym zbiorze danych najpierw należy otrzymać przewidywane wartości za pomocą $predict().
<- knn_k5$predict(zadanie,row_ids = uczący_testowy$test)
gatunki_przewidywane_test_knn_k5
gatunki_przewidywane_test_knn_k5
<PredictionClassif> for 48 observations:
row_ids truth response
6 setosa setosa
9 setosa setosa
11 setosa setosa
---
148 virginica virginica
149 virginica virginica
150 virginica virginica
Po zapisaniu wyniku $predict() można dla tego obiektu obliczyć trafność wykorzystując $score().
Wynik oznacza odsetek poprawnie sklasyfikowanych obserwacji ze zbioru testowego przy pomoc algorytmu k najbliższych sąsiadów z k=5.
$score(trafność) gatunki_przewidywane_test_knn_k5
classif.acc
0.9375
14.2.6 ❕ Regresja
Algorytmy te pozwalają przewidzieć wartość zmiennej ilościowej.
Tak jak w przypadku klasyfikacji należy utworzyć zadanie.
Dla regresji zamiast funkcji as_task_classif należy wykorzystać as_task_regr.
W tym przykładzie przewidywana będzie szerokość płatka.
<- as_task_regr(iris,target = "Petal.Width") zadanie_regresja
Wybór algorytmu następuje również w ten sam sposób jak w przypadku klasyfikacji.
Dla zadania regresji dostępne są jednak inne algorytmy.
mlr_learners
<DictionaryLearner> with 27 stored values
Keys: classif.cv_glmnet, classif.debug, classif.featureless,
classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
classif.ranger, classif.rpart, classif.svm, classif.xgboost,
regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
regr.xgboost
W omawianym przykładzie zostanie wykorzystany las losowy.
<- lrn("regr.ranger") las_losowy
14.2.7 ❕ Model
$train(zadanie_regresja,row_ids = uczący_testowy$train) las_losowy
Wartości przewidywane dla zbioru testowego.
<- las_losowy$predict(zadanie_regresja,row_ids = uczący_testowy$test) regresja_przewidywane
Wiele z miar wykorzystywanych do oceny modeli uczenia maszynowego majacych na celu regresję są analogiczne do tych wykorzystywanych w ekonometrii Przykładem może być MAPE czy MAE.
as.data.table(msr())
key label
1: aic Akaika Information Criterion
2: bic Bayesian Information Criterion
3: classif.acc Classification Accuracy
4: classif.auc Area Under the ROC Curve
5: classif.bacc Balanced Accuracy
6: classif.bbrier Binary Brier Score
7: classif.ce Classification Error
8: classif.costs Cost-sensitive Classification
9: classif.dor Diagnostic Odds Ratio
10: classif.fbeta F-beta score
11: classif.fdr False Discovery Rate
12: classif.fn False Negatives
13: classif.fnr False Negative Rate
14: classif.fomr False Omission Rate
15: classif.fp False Positives
16: classif.fpr False Positive Rate
17: classif.logloss Log Loss
18: classif.mauc_au1p Weighted average 1 vs. 1 multiclass AUC
19: classif.mauc_au1u Average 1 vs. 1 multiclass AUC
20: classif.mauc_aunp Weighted average 1 vs. rest multiclass AUC
21: classif.mauc_aunu Average 1 vs. rest multiclass AUC
22: classif.mbrier Multiclass Brier Score
23: classif.mcc Matthews Correlation Coefficient
24: classif.npv Negative Predictive Value
25: classif.ppv Positive Predictive Value
26: classif.prauc Precision-Recall Curve
27: classif.precision Precision
28: classif.recall Recall
29: classif.sensitivity Sensitivity
30: classif.specificity Specificity
31: classif.tn True Negatives
32: classif.tnr True Negative Rate
33: classif.tp True Positives
34: classif.tpr True Positive Rate
35: debug Debug Classification Measure
36: oob_error Out-of-bag Error
37: regr.bias Bias
38: regr.ktau Kendall's tau
39: regr.mae Mean Absolute Error
40: regr.mape Mean Absolute Percent Error
41: regr.maxae Max Absolute Error
42: regr.medae Median Absolute Error
43: regr.medse Median Squared Error
44: regr.mse Mean Squared Error
45: regr.msle Mean Squared Log Error
46: regr.pbias Percent Bias
47: regr.rae Relative Absolute Error
48: regr.rmse Root Mean Squared Error
49: regr.rmsle Root Mean Squared Log Error
50: regr.rrse Root Relative Squared Error
51: regr.rse Relative Squared Error
52: regr.rsq R Squared
53: regr.sae Sum of Absolute Errors
54: regr.smape Symmetric Mean Absolute Percent Error
55: regr.srho Spearman's rho
56: regr.sse Sum of Squared Errors
57: selected_features Absolute or Relative Frequency of Selected Features
58: sim.jaccard Jaccard Similarity Index
59: sim.phi Phi Coefficient Similarity
60: time_both Elapsed Time
61: time_predict Elapsed Time
62: time_train Elapsed Time
key label
task_type packages predict_type task_properties
1: <NA> mlr3 response
2: <NA> mlr3 response
3: classif mlr3,mlr3measures response
4: classif mlr3,mlr3measures prob twoclass
5: classif mlr3,mlr3measures response
6: classif mlr3,mlr3measures prob twoclass
7: classif mlr3,mlr3measures response
8: classif mlr3 response
9: classif mlr3,mlr3measures response twoclass
10: classif mlr3,mlr3measures response twoclass
11: classif mlr3,mlr3measures response twoclass
12: classif mlr3,mlr3measures response twoclass
13: classif mlr3,mlr3measures response twoclass
14: classif mlr3,mlr3measures response twoclass
15: classif mlr3,mlr3measures response twoclass
16: classif mlr3,mlr3measures response twoclass
17: classif mlr3,mlr3measures prob
18: classif mlr3,mlr3measures prob
19: classif mlr3,mlr3measures prob
20: classif mlr3,mlr3measures prob
21: classif mlr3,mlr3measures prob
22: classif mlr3,mlr3measures prob
23: classif mlr3,mlr3measures response twoclass
24: classif mlr3,mlr3measures response twoclass
25: classif mlr3,mlr3measures response twoclass
26: classif mlr3,mlr3measures prob twoclass
27: classif mlr3,mlr3measures response twoclass
28: classif mlr3,mlr3measures response twoclass
29: classif mlr3,mlr3measures response twoclass
30: classif mlr3,mlr3measures response twoclass
31: classif mlr3,mlr3measures response twoclass
32: classif mlr3,mlr3measures response twoclass
33: classif mlr3,mlr3measures response twoclass
34: classif mlr3,mlr3measures response twoclass
35: <NA> mlr3 response
36: <NA> mlr3 response
37: regr mlr3,mlr3measures response
38: regr mlr3,mlr3measures response
39: regr mlr3,mlr3measures response
40: regr mlr3,mlr3measures response
41: regr mlr3,mlr3measures response
42: regr mlr3,mlr3measures response
43: regr mlr3,mlr3measures response
44: regr mlr3,mlr3measures response
45: regr mlr3,mlr3measures response
46: regr mlr3,mlr3measures response
47: regr mlr3,mlr3measures response
48: regr mlr3,mlr3measures response
49: regr mlr3,mlr3measures response
50: regr mlr3,mlr3measures response
51: regr mlr3,mlr3measures response
52: regr mlr3,mlr3measures response
53: regr mlr3,mlr3measures response
54: regr mlr3,mlr3measures response
55: regr mlr3,mlr3measures response
56: regr mlr3,mlr3measures response
57: <NA> mlr3 response
58: <NA> mlr3,mlr3measures response
59: <NA> mlr3,mlr3measures response
60: <NA> mlr3 <NA>
61: <NA> mlr3 <NA>
62: <NA> mlr3 <NA>
task_type packages predict_type task_properties
<- msr("regr.mape") MAPE
Wartość MAPE uzyskana przez model.
$score(MAPE) regresja_przewidywane
regr.mape
0.1405453